package com.gl.glcourses.model{

	import com.gl.glcourses.events.GLCoursesEvent;
	import com.gl.glcourses.model.constants.Constants;
	import com.gl.glcourses.vos.Curso;
	import com.gl.glcourses.vos.EdicionCurso;
	import com.gl.glcourses.vos.Usuario;
	
	import mx.controls.Image;
	

	public class DesktopPanelModel extends PresentationModel{
		
		[Bindable]
		public var desktopState:String;
		
		[Bindable]
		public var cursoNuevo:Curso;
		
		[Bindable]
		public var tabSeleccionado:int;
		
		[Bindable]
		public var usuarioLogeado:Usuario;
		
		[Bindable]
		public var rolUsuarioLogeado:Class;
		
		[Bindable]
		public var edicionCursoSeleccionado:EdicionCurso;
		
		[Bindable]
		public var selectedImage:Image = new Image();
		
		/* ROLE IMAGES */
		[Embed(source="assets/regular_user.png")]
		[Bindable]
		public var user:Class;
		
		[Embed(source="assets/admin_user.png")]
		[Bindable]
		public var admin:Class;
		
		[Embed(source="assets/pm_user.png")]
		[Bindable]
		public var pm:Class;
		
		public function set usuario(value:Object):void
		{
			this.usuarioLogeado= value as Usuario;
			
			if(usuarioLogeado.rol == Constants.USUARIO_ADMINISTRADOR)
			{
				selectedImage.source = admin;
				return;
			}
			if(usuarioLogeado.rol == Constants.USUARIO_PM)
			{
				selectedImage.source = pm;
				return;
			}
			if(usuarioLogeado.rol == Constants.USUARIO_USUARIO)
			{
				selectedImage.source = user;
				return;
			}
			
		}
		
		public function cerrarSesion():void
		{
			var event:GLCoursesEvent = new GLCoursesEvent( GLCoursesEvent.CERRAR_SESION );	
			dispatch( event );
		}
		
		public function vistaMisCursos():void
		{
			var event:GLCoursesEvent = new GLCoursesEvent(GLCoursesEvent.PREPARAR_MIS_CURSOS);
			dispatch( event );
		}

		public function changeTab(tabSeleccionado:int):void
		{
			var event:GLCoursesEvent = new GLCoursesEvent(GLCoursesEvent.CAMBIAR_TAB);
			event.tabSeleccionado = tabSeleccionado;
			dispatch(event);
		}
		
	}
}